home *** CD-ROM | disk | FTP | other *** search
- unit Eventu3;
-
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, StdCtrls;
-
- type
- TForm1 = class(TForm)
- CheckBox1: TCheckBox;
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- private
- { Private declarations }
- public
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- const
- NilMethod: TMethod = (Code: nil; Data: nil);
-
- function SetHandler(Handler: TMethod): TMethod;
- const
- OldHandler: TMethod = (Code: nil; Data: nil);
- begin
- Result := OldHandler;
- OldHandler := Handler
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- CheckBox1.OnClick := TNotifyEvent(SetHandler(TMethod(CheckBox1.OnClick)));
- try
- { This won't trigger the event since it has been disabled }
- CheckBox1.Checked := not CheckBox1.Checked
- finally
- CheckBox1.OnClick := TNotifyEvent(SetHandler(NilMethod))
- end
- end;
-
- procedure TForm1.CheckBox1Click(Sender: TObject);
- begin
- ShowMessage('The checkbox was clicked by the user');
- { Blah, blah, blah }
- end;
-
- end.
-